// pages/search/search.js

const throttle = require('../../utils/throttle.js')

var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inputVal: "", //监听input框内值
    listarr: [], //创建数组
    SearchText: '取消', //按钮变动值
    keydown_number: 0, //检测input框内是否有内容
    input_value: "", //input 输入框value值
    name_focus: false, //是否自动获取焦点
    currentPage: 1, //当前第几页 
    hotList: [], // 热搜词数组
    nodataImgShow: true //无搜索内容图片显示
  },
  //取值input判断输入框内容修改按钮
  inputvalue: function(e) {
    // console.log(e.detail.value)
    this.setData({
      inputVal: e.detail.value,
      nodataImgShow: true  //默认显示热搜列表
    })
    if (e.detail.cursor != 0) {
      this.setData({
        SearchText: "搜索",
        keydown_number: 1
      })
    } else {
      this.setData({
        SearchText: "取消",
        keydown_number: 0
      })
    }
  },
  // 失去焦点
  blurValue:function(){
    return false
  },

  //搜索方法  回车键搜索
  search: throttle.throttle(function(e) {
    var that = this;
    var value = that.data.inputVal
    that.searchMethods(value)
 
  }, 1000),
  // 清除点击的某一条历史记录 思路：1.获取当前点击的文章下标 2.获取历史记录 循环遍历 3.点击下标等于循环下标则删除该条记录 
  closeThisItem: function(e) {
    var that = this;
    let _id = e.currentTarget.dataset.aindex;
    console.log(_id)
    wx.getStorage({
      key: 'list_arr',
      success: function(res) {
        console.log(res.data)
        for (var i = 0; i < res.data.length; i++) {
          // console.log(i)
          // 点击下标相等的情况下删除当前历史记录
          if (_id == i) {
            console.log('相等')
            res.data.splice(i, 1)
          }
        }
        console.log(res.data)
        // 删除后再赋值
        wx.setStorage({
          key: 'list_arr',
          data: res.data,
        })
        // 再取值赋值
        wx.getStorage({
          key: 'list_arr',
          success: function(res) {
            that.setData({
              listarr: res.data
            })
          },
        })
      }
    })
  },
  //清除搜索记录
  delete_list: function() {
    //清除当前数据
    this.setData({
      listarr: [],
      input_value: '',
    });
    //清除缓存数据
    wx.removeStorage({
      key: 'list_arr'
    })
  },
//  搜索方法封装
  searchMethods: function(value) {
    var that = this;
    // 判断搜索词是否在历史热搜里存在，存在：删除原来的插入最新的 ；不存在插入最新的
    let arr = this.data.listarr;
    if (value == '') {
      return false
    } else {
      // 
      let arrnum = arr.indexOf(value);
      if (arrnum < 0) { //<0不存在  
        arr.unshift(value)

      } else { //否则存在
        arr.splice(arrnum, 1)
        arr.unshift(value)
      }
      // 将最新的历史热搜存到本地
      wx.setStorage({
        key: "list_arr",
        data: arr
      })
      // 存储当前关键词
      wx.setStorage({
        key: 'valueTrans',
        data: value,
      })
    //  搜索输入框赋值
      that.setData({
      input_value:value
      })
      // 调用搜索接口
      var jsonData = {
        "data": {
          page: this.data.currentPage,
          keyword: value,
        },
        "memToken": "",
        "timestamp": "1"
      }
      // 搜索请求
      wx.request({
        url: 'https://www.cn-healthcare.com/freezingapi/api/article/rebangSearch',
        method: 'post',
        dataType: 'json',
        data: JSON.stringify(jsonData),
        header: {
          "Content-Type": 'application/x-www-form-urlencoded'
        },
        success: function (res) {
          console.log(res.data.response.docs)
          var searchList = res.data.response.docs
          if (searchList.length == 0) { //检索数据为空时 图片文案提示
           that.setData({
             nodataImgShow:false
           })
          } else {
            // 请求后跳转
            wx.navigateTo({
              url: '../news-list/news-list?searchList=' + JSON.stringify(searchList) + "&valueTrans=" + value
            })
          }
        }
      })
      this.setData({
        input_value: value,
        SearchText: "取消",
        keydown_number: 0,
        listarr: arr, //
      })
    }
  },
  //点击热搜赋值到input框
  clickHotList: throttle.throttle(function(e) {
    var that = this;
   
    let value = e.currentTarget.dataset.text;
    console.log(value)
    that.searchMethods(value)
  }, 1000),

   //点击历史记录赋值到input框
  clickHistoryList: throttle.throttle(function(e) {
    var that = this
    let values = e.currentTarget.dataset.text;
    that.searchMethods(values)
  }, 1000),

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    let that = this;
    console.log(options.valueTrans, 'onloads')
    that.setData({
      name_focus: true,
    })
    wx.setStorage({
      key: 'newVales',
      data: '',
    })
    //请求热门搜索
    wx.request({
      url: app.globalData.requestUrl + '/article/rebangHotWords',
      method: 'GET',
      success: function(res) {
        that.setData({
          hotList: res.data.data
        })
      },
      fail: function(err) {
        console.log(err)
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    var that = this;
    wx.getStorage({
      key: 'newVales',
      success: function (res) {
        console.log(res.data)
        that.setData({
          input_value: res.data
        })
      },
    })
    wx.getStorage({
      key: 'list_arr',
      success: function (res) {
        console.log("历史搜索数据读取" + res.data)
        var temp = []; //一个新的临时数组
        for (var i = 0; i < res.data.length; i++) {  //去重
          if (temp.indexOf(res.data[i]) == -1) {    
            temp.unshift(res.data[i]);
          }
        }
        that.setData({
          listarr: res.data
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function(res) {
    var that = this;
    if (res.from === 'button') {
      console.log("来自页面内转发按钮");
      console.log(res.target);
    } else {
      console.log("来自右上角转发菜单")
      let shareImg = that.data.head_img;
      let code = wx.getStorageSync('my_code');
      return {
        title: '健康界',
        imageUrl: '../img/shareimg.jpg',
        path: "/pages/search/search",
        success: function(res) {
          console.log("转发成功");
        },
        fail: function(res) {
          console.log("转发失败")
        }
      }
    }
  }
})